package Persistencia;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class Juego{

    //VARIABLES PRIVADAS
    
    private Desarrollador desarrollador = null;
    private String nombre = null;
    private String descripcion = null;
    private Double size = null;
    private Integer codigo = null;
    private Double precio = null;
    private List<Categoria> categorias = null;
    private List<Comentario> comentarios = null;
    private List<Compra> compras = null;
    private List<Version> versiones = null;
    private String imagen = null;
    
    //CONSTRUCTOR
    
    public Juego(Desarrollador desarrollador, String nombre, String descripcion, Double size, Double precio, String imagen){
        
        this.desarrollador = desarrollador;
        this.nombre = nombre;
        this.descripcion = descripcion;
        this.size = size;
        this.precio = precio;
        this.imagen = imagen;
        
    }
  
    //GETERS
    public String getImagen(){ return this.imagen; }
    public Desarrollador getDesarrollador(){ return this.desarrollador; }
    public String getNombre(){ return this.nombre; }
    public String getDescripcion(){ return this.descripcion; } 
    public Double getSize(){ return this.size; }     
    public Integer getCodigo(){ return this.codigo; }
    public Double getPrecio(){ return this.precio; }
    public List<Categoria> getCategorias(){ return this.categorias; }
    public List<Comentario> getComentarios(){ return this.comentarios; }
    public List<Compra> getCompras(){ return this.compras; }
    public List<Version> getVersiones(){return this.versiones;}
    
    
    //SETERS
    public void setImagen(String imagen){ this.imagen = imagen; }
    public void setSize(Double size){ this.size = size; }
    public void setDescripcion(String descripcion){ this.descripcion = descripcion; }
    public void setNombre(String nombre){ this.nombre = nombre; }
    public void setPrecio(Double precio){ this.precio = precio; }
    public void setCodigo(Integer codigo){ this.codigo = codigo; }
    public void setCategorias(List<Categoria> categorias){ this.categorias = categorias; }
    public void setDesarrollador(Desarrollador desarrollador){ this.desarrollador = desarrollador; }
    public void setComentarios(List<Comentario> comentarios){ this.comentarios = comentarios; }
    public void setCompras(List<Compra> compras){ this.compras = compras; }
    public void setVersiones(List<Version> versiones){this.versiones = versiones;}
    
    //FUNCIONES PROPIAS
    
    public void agregarCategoria(Categoria c){
        
        if(this.categorias == null){
            
            categorias = new ArrayList<Categoria>();
            
        }
        
        categorias.add(c);
    
    }
    
    public void agregarComentario(Comentario c){
         
        if(this.comentarios == null){
             
            comentarios = new ArrayList<Comentario>();
        
        }
         
        comentarios.add(c);
    
    }
    
    public void agregarCompra(Compra c){
         
        if(this.compras == null){
        
            compras = new ArrayList<Compra>();
        
        }
        
        compras.add(c);
    
    }
    
    public void agregarVersion(Version  v){
    	
    	if(this.versiones == null){
    		
    		versiones = new ArrayList<Version>();
    		    		
    	}
    	
    	versiones.add(v);
    	
    }
    
    public List<String> getNombresDeCategorias(){
    
        Iterator<Categoria> it = this.categorias.iterator();
                
        List<String> listac = new ArrayList<String>();
           
        while(it.hasNext()){

            Categoria c = it.next();
            listac.add(c.getNombre());

        }
        
        return listac;
    
    }

}
